Modern computing devices are capable of processing enormous amounts of data via a variety of useful applications that operate as software, firmware and hardware implementations. As data is processed, it is typically written to a temporary memory medium where it may be stored while the associated computing device is powered on or until it is written to a more permanent type of memory where it may be stored indefinitely even after power has been removed from the associated computer or from the memory medium itself. Data that is stored to memory may eventually be output or it may be modified, erased from memory, overwritten, or the like as the data is processed or otherwise manipulated as desired by a user.
Common types of non-volatile memory that maintain data after power-off include hard disk drives that magnetically maintain data on sectors of disks or platters, including higher density disk storage with shingled magnetic recording (SMR) disk drives, as well as, a variety of solid state memory devices (SSD) that store data on interconnected memory chips contained inside the SSDs. In a typical data storage system associated with a variety of computing devices, a host operation or device, for example, a computing operating system or a storage system component such as a device driver operating at the command of the computer operating system, passes data storage instructions to a control unit of the storage medium for directing read, write, and erase operations on the storage medium.
In a typical operation, a variety of problems can be associated with data storage to such devices. For example, in the case of SSD systems, write amplification can be particularly problematic where the actual amount of data written to the SSD media can be much greater (e.g., five times) the logical amount that is actually desired to be written to the medium. Such write amplification unnecessarily uses storage system resources, ties up memory capacity, and degrades the available lifetime or life expectancy of the storage medium. In addition, storage performance can be unpredictable and inconsistent, and storage latencies can be experienced. In data centers of various sizes and other multi-application scenarios, effective storage performance can fail to provide full performance and the storage device's lifetime can be significantly reduced (e.g., up to an 80% reduction), even when applications are not concurrent and write the same total amount of data.
It is with respect to these and other considerations that the present disclosure has been made.